package zhaoqiang.mediarecoder;

import android.app.Activity;
import android.media.MediaRecorder;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

import java.io.File;
import java.io.IOException;
import java.sql.BatchUpdateException;

public class AudioRecordDemo extends Activity {

    /**
     * 录音功能
     */
    //创建
    private MediaRecorder mRecorder;

    private Button startBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_audio_record_demo);

        startBtn = (Button) findViewById(R.id.startRecord);

        mRecorder = new MediaRecorder();

        initEvent();
        
    }

    private boolean isRecording;

    private void initEvent() {
        //创建单击事件
        startBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //

                if (!isRecording) {
                    //录音的步骤：
                    //1，设置输入源：
                    //TODO 分析每一种输入源的特点
                    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

                    //2，设置音频文件的文件格式：
                    mRecorder.setOutputFormat(
                            MediaRecorder.OutputFormat.MPEG_4//设置文件格式  MP4文件
                    );

//                  //机型适配：
//                  // 3. 设置声音编码器
                    if (Build.VERSION.SDK_INT >= 16) {
                        mRecorder.setAudioEncoder(
                                MediaRecorder.AudioEncoder.HE_AAC
                        );
                    }else if(Build.VERSION.SDK_INT >= 10){
                        mRecorder.setAudioEncoder(
                                MediaRecorder.AudioEncoder.AAC
                        );
                    }else {
                        mRecorder.setAudioEncoder(
                                MediaRecorder.AudioEncoder.DEFAULT
                        );
                    }

                    //设置立体声
                    mRecorder.setAudioChannels(2);

                    //设置码率  即每秒钟多少位
                    mRecorder.setAudioEncodingBitRate(128 * 1024); //16bit

                    //4，设置录音要保存的位置
                    File mediaRecoderFolder = FileUtils.getMediaRecoderFolder(getApplicationContext());
                    File target = new File(mediaRecoderFolder, "audio-" + System.currentTimeMillis());

                    mRecorder.setOutputFile(target.getAbsolutePath());

//                    setMacFileSize(long bytes);//设置录制的文件  最大的文件字节数

//                    设置最长文件尺寸  不能超过这个最大值
//                    mRecorder.setMaxDuration();

                    try {
                        mRecorder.prepare();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                    mRecorder.start();
                }

            }
        });

    }


    /**
     * 录制的注意事项   MediaRecorder没有pause的状态，只能stop
     * 要继续录制  需要重新reset。
     * @param view
     */
    public void pauseRecord(View view){
        //暂停录音：


    }

    public void btnStopRecord(View view){

        if (isRecording) {
            isRecording = false;
            mRecorder.stop();
            mRecorder.reset();
        }

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        mRecorder.release();

        mRecorder = null;
    }
}
